Isn't it nonlogical to make all the server-client data transitions thru Player class? Maybe make some function(s) or class(es) for such transitions? For example, if I wish to use GameInfo values in some Window class, I need 1st to put their copies into Player class, transit them to ClientState and then use them in drawing window.
Or maybe make same thing for GameInfo or LevelInfo class as with Player - create some 'ClientGameState' or whatever.